// import cleanData from './dataCleaner.js'
// 生成 50 条语文模拟数据
const yuwenMockData = []
const knowledgeShortcomingsList = [
  '文言文：需加强',
  '写作：需提高',
  '古诗词背诵：需巩固',
  '阅读理解：需强化',
  '语法知识：需掌握',
  '字词积累：需丰富',
  '修辞运用：需熟练',
  '标点使用：需规范',
  '口语表达：需提升',
  '文学常识：需拓展',
  '诗词鉴赏：需深入',
  '文言文翻译：需精准',
  '写作素材：需积累',
  '写作结构：需优化',
  '语句通顺度：需改进',
  '逻辑连贯性：需增强',
  '描写手法：需运用',
  '抒情方式：需多样',
  '记叙文写作：需提升',
  '议论文写作：需提高'
]

// 引入更丰富的姓和名组合
const names = ['张', '王', '李', '赵', '陈', '刘', '杨', '黄', '周', '吴', '郑', '孙', '马', '朱', '胡', '林', '郭', '何', '高', '罗', '梁', '宋', '唐', '许', '邓', '冯', '韩', '曹', '曾', '彭', '萧', '蔡', '潘', '田', '董', '袁', '于', '余', '叶', '蒋', '杜', '苏', '魏', '程', '吕', '丁', '沈', '任', '姚', '卢']
const secondNames = [
  // 单名
  '伟', '芳', '娜', '敏', '静', '丽', '强', '磊', '军', '洋', '勇', '艳', '杰', '娟', '涛', '明', '超', '辉', '玲', '华', '红', '燕', '飞', '龙', '云', '晶', '鑫', '欣', '婷', '雪',
  // 双名 - 传统组合
  '秀英', '秀兰', '秀珍', '秀华', '秀芳', '秀梅', '秀琴', '秀霞', '秀云', '秀芬',
  '志强', '志明', '志华', '志勇', '志刚', '志伟', '志军', '志国', '志强', '志强',
  '文静', '文华', '文娟', '文英', '文芳', '文霞', '文丽', '文秀', '文英', '文华',
  '春华', '春芳', '春梅', '春燕', '春霞', '春兰', '春英', '春丽', '春秀', '春华',
  '玉华', '玉芳', '玉梅', '玉霞', '玉兰', '玉英', '玉丽', '玉秀', '玉华', '玉芳',
  // 双名 - 现代组合
  '子涵', '子轩', '子墨', '子琪', '子萱', '子晴', '子怡', '子欣', '子悦', '子琪',
  '雨晴', '雨欣', '雨彤', '雨菲', '雨涵', '雨轩', '雨泽', '雨辰', '雨桐', '雨琪',
  '梦琪', '梦瑶', '梦婷', '梦洁', '梦华', '梦雪', '梦露', '梦菲', '梦涵', '梦琪',
  '思琪', '思涵', '思雨', '思彤', '思怡', '思颖', '思远', '思源', '思琪', '思涵',
  '佳琪', '佳怡', '佳欣', '佳颖', '佳悦', '佳琪', '佳涵', '佳彤', '佳琪', '佳怡',
  // 双名 - 寓意组合
  '浩然', '浩宇', '浩轩', '浩辰', '浩宇', '浩天', '浩宇', '浩宇', '浩宇', '浩宇',
  '晨曦', '晨光', '晨阳', '晨星', '晨露', '晨风', '晨光', '晨阳', '晨星', '晨露',
  '诗雨', '诗涵', '诗琪', '诗彤', '诗怡', '诗颖', '诗远', '诗源', '诗琪', '诗涵',
  '雅琪', '雅涵', '雅雨', '雅彤', '雅怡', '雅颖', '雅远', '雅源', '雅琪', '雅涵',
  '欣怡', '欣悦', '欣妍', '欣彤', '欣颖', '欣远', '欣源', '欣琪', '欣涵', '欣怡',
  // 双名 - 独特组合
  '梓涵', '梓轩', '梓墨', '梓琪', '梓萱', '梓晴', '梓怡', '梓欣', '梓悦', '梓琪',
  '若曦', '若涵', '若雨', '若彤', '若怡', '若颖', '若远', '若源', '若琪', '若涵',
  '语嫣', '语涵', '语雨', '语彤', '语怡', '语颖', '语远', '语源', '语琪', '语涵',
  '瑾瑜', '瑾涵', '瑾雨', '瑾彤', '瑾怡', '瑾颖', '瑾远', '瑾源', '瑾琪', '瑾涵',
  '悦然', '悦涵', '悦雨', '悦彤', '悦怡', '悦颖', '悦远', '悦源', '悦琪', '悦涵'
]

// 随机打乱数组
for (let i = secondNames.length - 1; i > 0; i--) {
  const j = Math.floor(Math.random() * (i + 1));
  [secondNames[i], secondNames[j]] = [secondNames[j], secondNames[i]]
}

// 用于记录已使用的名字组合
const usedNames = new Set()

// 生成学生姓名
const generateStudentName = (index) => {
  let nameIndex, secondNameIndex, fullName
  do {
    nameIndex = Math.floor(Math.random() * names.length)
    secondNameIndex = Math.floor(Math.random() * secondNames.length)
    fullName = names[nameIndex] + secondNames[secondNameIndex]
  } while (usedNames.has(fullName))

  usedNames.add(fullName)
  return fullName
}

for (let i = 1; i <= 500; i++) {
  const randomName = generateStudentName(i)
  // 调整成绩生成逻辑，让大部分成绩集中在 60 - 89 分
  let examScore
  const random = Math.random()
  if (random < 0.1) {
    // 10% 的概率生成 0 - 59 分（差）
    examScore = Math.floor(Math.random() * 60)
  } else if (random < 0.9) {
    // 80% 的概率生成 60 - 89 分（良好、一般）
    examScore = Math.floor(Math.random() * 30) + 60
  } else {
    // 10% 的概率生成 90 - 100 分（优秀）
    examScore = Math.floor(Math.random() * 11) + 90
  }

  // 引入脏数据：10% 的概率让成绩为 null
  if (Math.random() < 0.02) {
    examScore = null
  }

  // 确保上次考试成绩与这次考试成绩的差值在 -20 到 20 之间
  let previousExamScore = examScore !== null ? Math.max(0, Math.min(100, examScore + Math.floor(Math.random() * 41) - 20)) : null

  // 引入脏数据：10% 的概率让上次成绩为 null
  if (Math.random() < 0.02) {
    previousExamScore = null
  }

  const examDate = '2025-07-16'
  let status
  if (examScore === null) {
    status = '未知'
  } else if (examScore >= 90) {
    status = '优秀'
  } else if (examScore >= 70) {
    status = '良好'
  } else if (examScore >= 60) {
    status = '一般'
  } else {
    status = '差'
  }
  const gender = Math.random() > 0.5 ? '男' : '女'
  const age = Math.floor(Math.random() * 3) + 15 // 15 - 17 随机整数
  let attendanceRate = `${Math.floor(Math.random() * 10) + 90}%`

  // 引入脏数据：10% 的概率让出勤率为 null
  if (Math.random() < 0.02) {
    attendanceRate = null
  }

  const homeworkCompletionRate = `${Math.floor(Math.random() * 10) + 80}%`

  const item = {
    id: i,
    name: randomName,
    class: '一班',
    subject: '语文',
    examScore,
    examDate,
    status,
    gender,
    age,
    attendanceRate,
    homeworkCompletionRate,
    previousExamScore
  }

  // 生成随机的 weeklyStudyHours 数据
  const randomHours = []
  for (let j = 0; j < 12; j++) {
    // 生成 0 到 14 之间的随机整数
    const randomHour = Math.floor(Math.random() * 15)
    randomHours.push(randomHour)
  }
  item.weeklyStudyHours = randomHours

  const learningStyle = {
    language: Math.floor(Math.random() * 10) + 1, // 1 - 10 随机整数
    logic: Math.floor(Math.random() * 10) + 1,
    spatial: Math.floor(Math.random() * 10) + 1,
    musical: Math.floor(Math.random() * 10) + 1,
    bodily: Math.floor(Math.random() * 10) + 1,
    interpersonal: Math.floor(Math.random() * 10) + 1,
    intrapersonal: Math.floor(Math.random() * 10) + 1
  }
  const interestChange = {
    math: Array.from({ length: 5 }, () => Math.floor(Math.random() * 10) + 1), // 1 - 10 随机整数数组
    english: Array.from({ length: 5 }, () => Math.floor(Math.random() * 10) + 1),
    chinese: Array.from({ length: 5 }, () => Math.floor(Math.random() * 10) + 1)
  }
  item.learningStyle = learningStyle
  item.interestChange = interestChange
  const selectedShortcomings = []
  while (selectedShortcomings.length < 3) {
    const randomIndex = Math.floor(Math.random() * knowledgeShortcomingsList.length)
    const shortcoming = knowledgeShortcomingsList[randomIndex]
    if (!selectedShortcomings.includes(shortcoming)) {
      selectedShortcomings.push(shortcoming)
    }
  }
  item.knowledgeShortcomings = selectedShortcomings

  yuwenMockData.push(item)
}

// const cleanedYuwenData = cleanData(yuwenMockData)

// export default cleanedYuwenData
export default yuwenMockData
